package cn.iocoder.yudao.module.erp.controller.admin.monthplaninfo.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.erp.enums.DictTypeConstants;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 月度计划 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MonthPlanInfoRespVO {

    private boolean ratioFinish;
    //照付不议描述
    private String ratioDescible;

    private Long id;

    @Schema(description = "名称", example = "芋艿")
    @ExcelProperty("名称")
    private String name;

    @Schema(description = "计划开始日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("计划开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate beginTime;

    @Schema(description = "计划截止日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("计划截止日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endTime;

    @Schema(description = "托运方式", requiredMode = Schema.RequiredMode.REQUIRED  )
    @ExcelProperty(value = "托运方式",converter = DictConvert.class)
    @DictFormat(DictTypeConstants.LNG_TRANSPORT_TYPE)
    private Integer checkType;

    @Schema(description = "托运商")
    @ExcelProperty("托运商")
    private String checkCompany;

    @Schema(description = "管线")
    @ExcelProperty("管线")
    private String lineInfo;

    @Schema(description = "气源")
    @ExcelProperty("气源")
    private String gasResource;

    @Schema(description = "管输费", requiredMode = Schema.RequiredMode.REQUIRED, example = "13480")
    @ExcelProperty("管输单价")
    private BigDecimal linePrice;


    /**
     * 管输总额
     */
    @ExcelProperty("管输费")
    private BigDecimal lineCost;
    /**
     * 管容总量
     */
    @ExcelProperty("管容总量")
    private BigDecimal capacityTotal;


    @ExcelProperty("照付不议系数")
    private BigDecimal ratio;

    /**
     * 每日管容
     */
    private BigDecimal capacityDay;
    /**
     * 已用管容
     */
    private BigDecimal capacityUsed;
    /**
     * 已下载总量
     */
    @ExcelProperty("已下载量")
    private BigDecimal usedDownCount;
    /**
     * 已上载总量
     */
    @ExcelProperty("已上载量")
    private BigDecimal usedUpCount;
    /**
     * 不平衡
     */
    @ExcelProperty("不平衡")
    private BigDecimal imbalanceTotal;

    @ExcelProperty(value = {"销售信息","下载点"})
    private String downloadName;

    @ExcelProperty(value = {"销售信息","销售客户"})
    private String saleCustomerName;


    @Schema(description = "销售单价（元/方）", example = "19351")
    @ExcelProperty(value = {"销售信息","销售单价（元/方）"})
    private BigDecimal salePrice;

    @Schema(description = "居间费（元/方）", example = "3240")
    @ExcelProperty(value = {"销售信息","居间单价"})
    private BigDecimal saleOtherPrice;

    @Schema(description = "销售居间额", example = "32054")
    @ExcelProperty(value = {"销售信息","居间费"})
    private BigDecimal saleOtherTotal;

    @ExcelProperty(value = {"销售信息","销售合同"})
    private String saleContractName;

    @ExcelProperty(value = {"销售信息","销售额"})
    private BigDecimal saleAllCost;





    @Schema(description = "下载点", example = "5545")
    private Long downloadId;

    @Schema(description = "上载点", example = "25925")
    private Long upId;


    @ExcelProperty(value = {"采购信息","上载点"})
    private String upName;

    @ExcelProperty(value = {"采购信息","采购客户"})
    private String buyCustomerName;

    @Schema(description = "采购单价（元/方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "18579")
    @ExcelProperty(value = {"采购信息","采购单价（元/方）"})
    private BigDecimal buyPrice;

    @Schema(description = "居间费（元/方）"  )
    @ExcelProperty(value = {"采购信息","居间单价（元/方）"})
    private BigDecimal buyOtherPrice;

    /**
     * 采购居间额
     */
    @ExcelProperty(value = {"采购信息","居间费"})
    private BigDecimal buyOtherTotal;

    @ExcelProperty(value = {"采购信息","采购合同"})
    private String buyContractName;

    @ExcelProperty(value = {"采购信息","采购额"})
    private BigDecimal buyAllCost;





    @ExcelProperty("利润")
    private BigDecimal profit;







    /*@Schema(description = "已下载总量", example = "16031")
    private BigDecimal usedSaleCount;

    @Schema(description = "已上载总量", example = "20428")
    private BigDecimal usedBuyCount;*/

    @Schema(description = "销售客户", example = "29465")
/*    @ExcelProperty("销售客户")*/
    private Long saleCustomerId;



    /**
     * 销售居间额
     */
/*    private BigDecimal saleOtherTotal;*/

   /* @Schema(description = "销售总量（万方)", example = "24760")
   *//* @ExcelProperty("销售总量（万方)")*//*
    private BigDecimal saleGasAllCount;*/

   /* @Schema(description = "每日数量（万方）", example = "23877")
    @ExcelProperty("每日数量（万方）")
    private BigDecimal saleSubCount;*/

    @Schema(description = "销售合同", example = "14909")
    private Long saleContractId;

    @Schema(description = "采购客户", requiredMode = Schema.RequiredMode.REQUIRED, example = "1254")
    private Long buyCustomerId;



    @Schema(description = "采购总量（万方）"  )
    private BigDecimal buyGasAllCount;

    @Schema(description = "每日数量（万方）", requiredMode = Schema.RequiredMode.REQUIRED, example = "6014")
    private BigDecimal buySubCount;

    @Schema(description = "总销售金额（元）", requiredMode = Schema.RequiredMode.REQUIRED, example = "20252")
    private BigDecimal buyAllCount;

    @Schema(description = "采购合同" )
    private Long buyContractId;

    @Schema(description = "状态"  )
    private Integer status;

    @Schema(description = "备注"  )
    private String remark;

    @Schema(description = "附件" )
    private String fileUrl;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;



}